package cc.iotkit.plugins.mattress.parser;

import io.vertx.core.buffer.Buffer;
import lombok.extern.slf4j.Slf4j;

/**
 * 数据编码
 *
 * @author sjg
 */
@Slf4j
public class DataEncoder {

    public static Buffer encode(DataPackage data) {
        Buffer buffer = Buffer.buffer();
        /**
         * struct
         * {
         * uint8 magic[2]; // 消息起始标识：0xab 0xcd
         * uint8 len; // data字节数
         * uint8 crc; // data部分的CRC_8校验
         * uint8 data[]; //消息内容，长度动态计算
         * }
         */
        buffer.appendByte((byte)0xab);
        buffer.appendByte((byte)0xcd);
        buffer.appendByte((byte) data.getPayload().length);
        buffer.appendByte(CRC8.calcCrc8(data.getPayload()));
        buffer.appendBytes(data.getPayload());
        return buffer;
    }
}
